﻿// 4980. 猜数字.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://www.acwing.com/problem/content/4983/

小红和小明正在玩一个猜数字游戏。

由小红指定一个正整数 x
，小明并不知道 x
 的具体值，只知道 x
 的取值范围是 [1,n]
。

为了猜出 x
 的具体值，小明可以向小红问这样的问题：“x
 是否可以被整数 y
 整除？”。

小明可以询问的次数不限（也可以不进行任何询问），但是询问次数越少越好。

对于小明的每次询问，小红需要如实回答小明是或否。

在小明进行完所有询问后，他需要根据小红的所有回答，确定 x
 的具体值。

为了做到万无一失，小明希望无论 x
 取什么值，在进行完所有询问后，都能根据小红的回答将其唯一确定。

请计算小明所需要的最少询问次数，并给出一种具体询问方案。

例如，当 n=4
 时，最少需要进行 3
 次询问，一种可能方案是 3
 次询问的 y
 值依次为 2,4,3
，下面进行分析：

如果 x=1
，则小红的回答依次为：否、否、否。
如果 x=2
，则小红的回答依次为：是、否、否。
如果 x=3
，则小红的回答依次为：否、否、是。
如果 x=4
，则小红的回答依次为：是、是、否。
可以发现，x
 取不同值时，小红的回答各不相同，所以小明可以根据小红的回答来唯一确定 x
 的值。

当询问次数小于 3
 时，无法保证小明能够根据小红的回答来唯一确定 x
 的值。

例如，对于我们之前给出的可能方案，如果不进行第 3
 次询问，那么：

如果 x=1
，则小红的回答依次为：否、否。
如果 x=2
，则小红的回答依次为：是、否。
如果 x=3
，则小红的回答依次为：否、否。
如果 x=4
，则小红的回答依次为：是、是。
可以发现，当 x
 的取值为 1
 或 3
 时，小红的回答均为：否、否，小明无法根据小红的回答来唯一确定 x
 的值。

输入格式
一个整数 n
。

输出格式
第一行输出一个整数 k
，表示所需要的最少询问次数。

第二行输出 k
 个数，表示每次询问的 y
 值。

注意，当 k=0
 时，第二行必须输出空行，否则会判为错误。

如果方案不唯一，输出任意合理方案均可。

数据范围
前 3
 个测试点满足 1≤n≤10
。
所有测试点满足 1≤n≤1000
。

输入样例1：
4
输出样例1：
3
2 4 3
输入样例2：
6
输出样例2：
4
2 4 3 5
*/
int main()
{
    std::cout << "Hello World!\n";
}

 